/*
 * Copyright (c) 2022 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0
 *
 * SPDX-License-Identifier: EPL-2.0
 */
package org.eclipse.ditto.internal.utils.tracing.filter;

import javax.annotation.concurrent.Immutable;

import org.eclipse.ditto.internal.utils.tracing.span.SpanOperationName;

/**
 * This implementation of {@link TracingFilter} accepts all provided operation names.
 */
@Immutable
public final class AcceptAllTracingFilter implements TracingFilter {

    private AcceptAllTracingFilter() {
        super();
    }

    /**
     * Returns an instance of {@code AcceptAllTracingFilter}.
     *
     * @return the instance.
     */
    public static AcceptAllTracingFilter getInstance() {
        return new AcceptAllTracingFilter();
    }

    @Override
    public boolean accept(final SpanOperationName operationName) {
        return true;
    }

    @Override
    public String toString() {
        return getClass().getSimpleName() + "[]";
    }

}
